1. Field of the Invention
The present invention relates to the field of input devices for communicating with computer systems, and more particularly to an integrated device that supports both 2 dimensional and 3 dimensional input to manipulate objects on a display of the computer system.
2. Description of the Related Art
Human users communicate with computers using various types of input devices, and computer systems typically include a means to communicate back to the user. The communication from a computer to the user is most commonly provided using a display screen on a device such as a CRT (cathode ray tube) monitor. The types of input devices available to the user include keyboards and speech recognizers. When a graphical user interface ("GUI") is provided on the display screen, additional types of input are often used to enable the user to interact with the graphical objects displayed thereupon. This interaction includes selecting options, highlighting objects, moving objects and a performing a variety of other tasks on the computer system, with visual feedback provided by the images on the computer screen, as is well known in the art. These tasks require movement of a cursor (or other pointing device, equivalently) on the display screen. Additional device types enable the cursor movement, and include: keys defined on the keyboard to provide directional cursor movement (such as the "arrow" keys used to indicate movement up and down, and left and right); mouse devices; light pens; joysticks; track balls; and touch sensitive pads that detect finger movement on a surface. The user's movement of each device is translated into positional coordinate information or commands which the computer is able to interpret and utilize to move the cursor appropriately.
Some of these devices may be integrated directly into the computer, such as the keyboard which is integrated into a laptop or other portable computer. Other devices, such as mice or joysticks, are separate from the computer. Some of the devices support input in 2 dimensions, while others support input in 3 dimensions. Mice are examples of the former, while joysticks are available that are examples of the latter. A 2-dimensional input device allows the user to move the cursor in X and Y directions, where the X axis is typically considered to be a left-and-right movement and the Y axis is considered to be an up-and-down movement. Movement in X and Y directions is sufficient to handle the requirements of most computer software applications, since most applications display 2-dimensional ("2D") images on the 2-dimensional display screen. 3-dimensional ("3D") user interfaces are becoming increasingly more popular, as more and more applications support 3-dimensional images. With these applications, the ability to provide input in a third dimension, for the Z axis, is required. This third dimension allows the user, for example, to select a particular location within a 3-dimensional image; to select an item from a 3-dimensional menu; to move the displayed image in and out on the display; etc.
The current art in 2D devices gives 4 degrees of freedom, which may be referred to as +X, -X, +Y, and -Y. 2D input devices integrated within keyboards are known, and include the International Business Machines Corporation ("IBM") TrackPoint, touch pads, track balls, etc. "TrackPoint" is a registered trademark of IBM. The TrackPoint may be described as a pointer stick, and resembles a small "pencil eraser"--like object. This pointer stick is placed between the G, H, and B keys when located on a keyboard, as shown in FIG. 1. This type of pointer stick may also be integrated within a mouse. When located on a mouse, the pointer stick is typically positioned between the existing mouse buttons. The user pushes the pointer stick left or right, forward or backward, to indicate cursor movement in the X and Y directions. When a 3D input device is required, the user must typically plug in a separate device, such as a joystick. This device then enables input in 6 degrees of freedom, adding +Z and -Z to the 4 degrees supported in 2D input.
Devices are known which were designed for 2D input, and which have been modified to provide input in 3 dimensions. However, none of these devices are known to be both integrated and convertible, as well as easy to use, while supporting continuous rotation in the Z-axis direction. Further, no devices are known which are integrated, and which use a sliding pointer stick for Z-axis input. Trackballs, for example, have been modified to support 3D input. In the original 2D input mode, the user rotates the track ball left and right, forward and backward. The modification allows the user to rotate the ball clockwise and counterclockwise, for a third input dimension. However, this technique is very cumbersome in operation, and tends to be error-prone. For example, the user may easily stray too far in the downward movement when attempting a clockwise rotation, so that his attempt to provide a Z input becomes an unintended-X (negative X) input.
Requiring a separate input device for 3D input makes the computer system more expensive, and cumbersome due to the requirement for a separate external cable with which the device is attached to the computer. The computer becomes more difficult to configure as extra devices are added, because each device typically requires the user to install a special device driver software package. Further, portable computers are becoming increasingly popular. These portable computers become more difficult to work with, and less portable, when the user must carry extra devices (and their cables) along. And when operating the portable computer in a limited-space environment, such as when using a so-called "laptop computer" on one's lap, a separate device is much more cumbersome since it is not physically anchored to the computer system. The user must hold not only the computer, but also the input device. And in the case of a mouse device, a surface on which to roll the mouse must be available, in order to generate the signals indicating the user's input request which will then be passed to the computer.
As 3D software applications become more prevalent, users will want to be able to change between 2D and 3D mode (i.e. using an application that requires input in 2 dimensions, and then using an application that requires input in 3 dimensions) easily and quickly. Requiring the user to change input devices will greatly limit the acceptance of 3D programs, and will likely cause user dissatisfaction. Further, users may want to have both 2D and 3D applications active simultaneously. Most computers provide a single port for attaching a separate non-integrated input device. If separate 2D and 3D devices are required, both being non-integrated, the user will not have the ability to work in this mode: he will have to choose between using a 2D input device, or a 3D input device, at a given point in time.
Accordingly, what is needed is an improved controller device for providing input that signals a user's request to manipulate objects on the display. This device should be an easy-to-use, system-integrated input device that supports both 2-dimensional and 3-dimensional input. In a first embodiment, the present invention provides a pointer stick device that operates in 2D mode in a first position, and 3D mode in a second position. The user converts the pointer stick between 3D and 2D mode by pushing on it. In a second embodiment, the pointer stick device provides 3D input by adding detection of push and pull movement of a sliding, or telescoping, embodiment of the device, for Z-axis input.